﻿/**
 * @file ComponentFactory.cpp
 * @brief 组件工厂
 * @author YanZhiHui (chanyuantiandao@126.com)
 * @date 2024-04-19
 */
#include "ComponentFactory.h"
#include "PreWindowInitializer.h"

#include "OperatorsModel/OpersModelInterface.h"
#include "OperatorsGUI/OperatorsGUIInterface.h"

#include "FITK_Kernel/FITKAppFramework/FITKAppFramework.h"
#include "FITK_Kernel/FITKAppFramework/FITKGlobalData.h"
#include "FITK_Component/FITKRenderWindowVTK/FITKGraph3DWindowInterface.h"
#include "FITK_Component/FITKPlotWindow/FITKPlotWindowsInterface.h"

QList<AppFrame::FITKComponentInterface *> ComponentFactory::createComponents()
{
    // 自定义组件列表
    QList<AppFrame::FITKComponentInterface *> componentList;
    // 3D图形窗口组件
    auto compVTKrender = new Comp::FITKGraph3DWindowInterface;
    compVTKrender->addInitializer(1, new PreWindowInitializer);
    componentList << compVTKrender;
    // 模型数据控制器组件
    componentList << new OperModel::OpersModelInterface;
    componentList << new OperGUI::OperatorsGUIInterface;
    componentList << new Plot::FITKPlotWindowsInterface;

    return componentList;
}
